File I/O within a software tool is typically handled by a software developer (programmer). For example, if a programmer wants to open a file for writing, utilizing a temporary file to preserve the original data until the new file is complete, that process is typically coded by the programmer. In a distributed network running two or more copies of the same software tool, file updates can cause data concurrency problems, and other errors affecting the original data can occur because of incorrect handling of certain situations where the original state of the data in a file need to be preserved.